class Solution {
public:
    using ll=long long;
    int numSub(string s) {
        const int MOD=1e9+7;
        ll ans=0, last0=-1;
        for(int i=0; i<s.size(); i++) {
            if(s[i]=='0') last0=i; //记录上个0的位置
            else ans+=i-last0; //右端点为i的全1子串个数
        }
        return ans%MOD;
    }
};